12
תגובות
ראיתי מקום שבו כתבו את הקוד הבא:
לפי מה שהבנתי, הנתיב הזה מפנה לקובץ מחוץ ל-public_html, כך שאפשר לגשת אליו רק ישירות מהשרת, ולא מהרשת. מה שלא הבנתי זה למה מוביל השילוב של שתי הנקודות אחרי תיקיית השורש (או מה שזה לא יהיה). זה לא אמור להיות תיקייה אחת מעל תיקיית השורש? איך זה אפשרי?
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt
לפי מה שהבנתי, הנתיב הזה מפנה לקובץ מחוץ ל-public_html, כך שאפשר לגשת אליו רק ישירות מהשרת, ולא מהרשת. מה שלא הבנתי זה למה מוביל השילוב של שתי הנקודות אחרי תיקיית השורש (או מה שזה לא יהיה). זה לא אמור להיות תיקייה אחת מעל תיקיית השורש? איך זה אפשרי?
12 תשובות
*תיקון הקוד המלא (לא שזה משנה... D:)
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab');
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab');
אוקיי.
השאלה שלי היא לאן מובילה התיקייה אחת אחורה. אולי לא בדיוק הבנתי את $_SERVER['DOCUMENT_ROOT'], כי אני לא מבין איך אפשר ללכת תיקייה אחת אחורה מתיקיית השורש...
יש תיקיות של לינוקס,
אז זה הולך לפי זה....
האתר שלך יושב עמוק בתוך תיקיות של לינוקס, תיקיית השורש כמו שאת האומר זה רק הנתיב הראשי של הדומיין
אבל אם המטרה הייתה שהקובץ ימוקם במקום שבו לא יוכלו לגשת אליו מהרשת, למה צריך ללכת עוד תיקייה אחורה מתיקיית השורש?
לפעמים אתה משתמש בסיפריות או קבצים שאתה לא רוצה שיתערבבו לך עם התיקיה של האפליקציה
ענה
iiddaannyy
ב
10 ליולי 2012
#
תדפיס את DOCUMENT_ROOT ותראה לאן זה מוביל, ואז גם תראה שאפשר לעלות תיקיה מעל. (:
שאלה נוספת, לא פשוט יותר לכתוב:
$fp = fopen("/../orders/orders.txt");
במקום
$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt");
?
זה דברים שונים :)
קודם כל / זה כמו C: ב windows
שנית גם אם היית כותב פשוט
fopen(../orders...
הייתה עולה למעלה מהתיקיה הנוכחית שבה נמצא הסקריפט, והוא לאט דווקא נמצא בתוך document root . הסקריפט הנוכחי יכול להימצא בתוך תיקיה שבתוך תיקיה שבתוך document_root ואז היית צריך להעלות 3 תיקיות למעלה.